#ifndef COMMON_H
#define COMMON_H

/*
 * 这里是一些通用的代码
 */

namespace Timer {
	constexpr int string_to_number(const char * str){
	// 将字符串转换为特定格式的数字（10进制）:
	// 格式：非字符个数 | 字符串求和 | 字符串长度
	// 位数：1          | 2          | 2
	// 注意：所有位都是取模之后填入的
		int length = 0;
		int sum = 0;
		int noletterNum = 0;
		for(length=0; str[length]!='\0'; ++length){
			char ch = str[length];
			sum += (ch * (length + 1)) % 101;
			if((ch < 'a') || (ch > 'z')){
				++noletterNum;
			}
		}
		int back_num = (length % 100) +  //
				(sum % 100) * 100 +  //
				(noletterNum % 100) * 10000; //
		return back_num;
	}

	void version(); // 打印版本信息
	void help();    // 打印帮助信息
#ifdef _WIN32 // windows平台专有函数
	void hideConsole(); // 隐藏控制台
	/* 在windows平台双击击可执行文件会弹出控制台
	 * 该函数的作用是在双击可执行文件时隐藏控制台，在从控制台打开软件时不隐藏控制台
	 * 注意：
	 * 1. 为了避免控制台闪现之后又消失的情况出现，请在main函数的开头调用
	 *    尽可能在 QApplication app(argc, argv) 初始化之前调用
	 */
#endif // WIN32
}

#endif // COMMON_H
